Motor Avançado
informação
Utilize esta categoria para movimentar motores até uma posição específica com encoders.
Exemplo
Girando um motor até 1000 ticks
- Blocos
- Texto

#include "user.hpp"
MotorAdvanced motor1 = MotorAdvanced(Motor::PORTA_1);
Encoder encoderA = Encoder(EncoderPorts::Ports::PORTA_A);
void autonomous() {
}
void teleopPeriodic() {
motor1.setMotorType(&ULTRA_PLANETARY);
motor1.setEncoder(&encoderA);
motor1.setTargetPosition(1000);
motor1.setMotorMode(MOTOR_CONFIGURES::MOTOR_MODES::RUN_TO_TARGET);
motor1.setPower(0.6f);
}
- O código acima realiza as seguintes ações:
- Define a saída do motor 1 para a máxima possível;
- Aguarda 2 segundos;
- Reduz a saída do motor 1 para 30%;
- Aguarda 2 segundos;
- Inverte o sentido do motor 1 e coloca a velocidade em 50%;
- Aguarda 2 segundos.
Descrição das Funções
set encoder and motorType
Permite escolher a porta de encoder utilizada e o tipo de motor.
- Blocos
- Texto

motor1.setMotorType(&ULTRA_PLANETARY);
motor1.setEncoder(&encoderA);
setTargetPosition
Define a posição até a qual o motor deve girar. Unidade em ticks.
- Blocos
- Texto

motor1.setTargetPosition(0);
setMotorMode
Define o modo do motor.
- Blocos
- Texto

motor1.setMotorMode(MOTOR_CONFIGURES::MOTOR_MODES::RUN_TO_TARGET);
setTolerance
Define a tolerância máxima permitida ao motor quando girando até a posição.
- Blocos
- Texto

motor1.setTolerance(0);
getTargetPosition
Retorna a posição alvo do motor.
- Blocos
- Texto

motor1.getTargetPosition();
isBusy
Retorna um valor lógico dependendo se o motor está indo até a posição.
- Blocos
- Texto

motor1.isBusy();